/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：EngineResultMsgHandler.js<br>
 * 日期：2016年11月25日<br>
 * 作者: 王中山<br>
 * 功能：<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2.WebSocket");

/**
 * 类型名称：Rainier.UI.V2.WebSocket.EngineResultMsgHandler<br>
 * 类型功能：websocket<br>
 * 接口函数：<br>
 * 成员变量：<br>
 */
Rainier.UI.V2.WebSocket.EngineResultMsgHandler = Rainier.UI.V2.WebSocket.RecvMessageHandler.extend({
	
	/**
	 * 函数名称：Rainier.UI.V2.WebSocket.EngineResultMsgHandler.init<br>
	 * 函数功能：构造函数<br>
	 * 异常信息：无<br>
	 */
	init : function(){
		this._super();
		
		this.proEventListenerList = new draw2d.util.ArrayList();
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.WebSocket.EngineResultMsgHandler.addPropertyListener<br>
	 * 函数功能：添加模型事件侦听器<br>
	 * 参数输入：sListenerId  :事件ID<br>
	 * 参数输入：eventListener:事件侦听器<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	addPropertyListener : function(sListenerId,eventListener){
		var listener = {};
		listener.id = sListenerId;
		listener.listener = eventListener;
		this.proEventListenerList.add(listener);
		this.addPropertyChangeListener(sListenerId,eventListener);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.WebSocket.EngineResultMsgHandler.removePropertyListenerById<br>
	 * 函数功能：删除模型事件侦听器<br>
	 * 参数输入：eventListener:事件侦听器<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	removePropertyListenerById : function(sListenerId){
		var listener = null;
		this.proEventListenerList.each(function(i,lis){
			if(lis.id === sListenerId){
				listener = lis;
				return false;
			}
		});
		this.proEventListenerList.remove(listener);
		this.removePropertyChangeListener(sListenerId);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.WebSocket.EngineResultMsgHandler.clearPropertyListener<br>
	 * 函数功能：清除模型事件侦听器<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	clearPropertyListener : function(){
		var _this = this;
		this.proEventListenerList.each(function(i,lis){
			_this.removePropertyChangeListener(lis.id);
		});
		this.proEventListenerList.clear();
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.WebSocket.EngineResultMsgHandler.getPropertyListeners<br>
	 * 函数功能：获取事件侦听器列表<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getPropertyListeners : function(){
		return this.proEventListenerList;
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.WebSocket.EngineResultMsgHandler.handleMsg<br>
	 * 函数功能：发送消息<br>
	 * 参数输入：xmlDoc		XMLDocument<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	handleMsg : function(xmlDoc){
		//TODO:处理engine-result类型消息
		if(xmlDoc){
			var contentType = $(xmlDoc).find('content-type').text();
			var content		= $(xmlDoc).find('content').text();

			if(content){
				var objOld = {};
				
				var event = Rainier.UI.V2.WebSocket.EngineResultMsgHandler.WEB_SOCKET_ENGINE_RESULT;
				this.firePropertyChange(
						event, 
						objOld, 
						content,
						this
				);	
			}			
		}
	},
	
});
Rainier.UI.V2.WebSocket.EngineResultMsgHandler.WEB_SOCKET_ENGINE_RESULT 	= "websocket engine result";	//UI界面属性变化事件